package com.zenithmind.library.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zenithmind.common.result.Result;
import com.zenithmind.library.pojo.domain.Book;
import com.zenithmind.library.pojo.dto.BookCreateDTO;
import com.zenithmind.library.pojo.query.BookQuery;

import java.util.List;

/**
 * 图书服务接口
 * 遵循接口隔离原则：组合多个细分的服务接口
 * 遵循依赖倒置原则：依赖抽象而不是具体实现
 *
 * @author ZenithMind
 * @since 2024-06-14
 */
public interface BookService extends IService<Book>,
                                    BookQueryService,
                                    BookManagementService,
                                    BookInventoryService,
                                    BookStatisticsService {

    /**
     * 导入图书数据
     *
     * @param books 图书列表
     * @return 导入结果
     */
    Result<String> importBooks(List<BookCreateDTO> books);

    /**
     * 导出图书数据
     *
     * @param query 查询条件
     * @return 导出文件路径
     */
    Result<String> exportBooks(BookQuery query);
}
